Next:
E) Copy Elision
, Previous:
Meta-Tunning 2
, Up:
Index
E) Proxy Pattern
Proxy Pattern
- 대리자를 통해 다른 객체에 대한 접근을 제어
- 자신이 상대하는 대상과 동일한 인터페이스 제공
- 원격지 프록시, 가상 프록시, 보호용 프록시, 스마트 참조자 등
#include
<iostream>
using
namespace
std
;
class
Subject
{
public
:
virtual
void
request
(
)
=
0
;
}
;
class
RealSubject
:
public
Subject
{
public
:
void
request
(
)
{
cout
<<
"
RealSubjectRequest
"
<<
endl
;
}
}
;
class
Proxy
:
public
Subject
{
public
:
Proxy
(
)
:
_realsubject
(
nullptr
)
{
}
~
Proxy
(
)
{
if
(
_realsubject
)
delete
_realsubject
;
}
void
request
(
)
{
if
(
!
_realsubject
)
_realsubject
=
new
RealSubject
;
_realsubject
->
request
(
)
;
}
private
:
RealSubject
*
_realsubject
;
}
;
int
main
(
void
)
{
Proxy
*
Proxyptr
=
new
Proxy
(
)
;
Proxyptr
->
request
(
)
;
delete
Proxyptr
;
return
0
;
}
RealSubjectRequest